package com.yan.design.observer;

import com.yan.design.observer.listiter.ALlEvent;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;

/**
 * 观察者模式
 * @author shengren.yan
 * @create 2022-11-12
 */
@Service
public class OrderService {

    // 一个方法 有多个任务（一对多的场景）
    public void make(){
        // 1. 创建订单
        System.out.println("1.创建订单");
        // 2. 发送邮件
        System.out.println("2.发送邮件");
        // 3. 发送短信
        System.out.println("3.发送短信");
    }

    @Autowired
    private ApplicationContext applicationContext;

    // 代码改进
    public void make1(){
        // 底层循环执行 上面的 1 、2 、3
        applicationContext.publishEvent(new ALlEvent(applicationContext));
    }
}
